// 系统设置，用户详情
const express = require('express');
const router = express.Router();
// Joi是一个强大的 JavaScript 数据验证库，用于定义和验证各种数据的格式和规则
const expressJoi = require('@escook/express-joi');
const { password_limit, name_limit, email_limit, forgetPassword_limit } = require('../limit/user.js')

const userInfoHandler = require('../router_handle/userInfo'); 

// 上传头像
router.post('/uploadAvatar', userInfoHandler.uploadAvatar)
// 绑定账号接口
router.post('/bindAccount', userInfoHandler.bindAccount)
// 获取用户信息
router.post('/getUserInfo', userInfoHandler.getUserInfo)
// 修改姓名
router.post('/changeName', expressJoi(name_limit), userInfoHandler.changeName)
// 修改性别
router.post('/changeSex', userInfoHandler.changeSex)
// 修改邮箱
router.post('/changeEmail', expressJoi(email_limit), userInfoHandler.changeEmail)
// 修改部门
router.post('/changeDepartment', userInfoHandler.changeDepartment)
// 修改密码
router.post('/changePassword', expressJoi(password_limit), userInfoHandler.changePassword)
// 忘记密码，账号和邮箱对应
router.post('/verifyAccountAndEmail', userInfoHandler.verifyAccountAndEmail)
// 忘记密码，登录页面修改密码
router.post('/changePasswordInLogin', expressJoi(forgetPassword_limit), userInfoHandler.changePasswordInLogin)

// -----------------------------------------------------------------------------------------------用户管理
// 创建账号，添加管理员
router.post('/createAdmin', userInfoHandler.createAdmin)
// 获取管理员列表
router.post('/getAdminList', userInfoHandler.getAdminList)
// 编辑管理员账号信息
router.post('/editAdmin', userInfoHandler.editAdmin)

// 对管理员取消赋权 参数 id 删除
router.post('/changeIdentityToUser', userInfoHandler.changeIdentityToUser)
// 对用户进行赋权
router.post('/changeIdentityToAdmin', userInfoHandler.changeIdentityToAdmin)

// 通过账号对用户搜索 account identity
router.post('/searchUserByAccount', userInfoHandler.searchUserByAccount)
// 通过部门对用户搜索 
router.post('/searchUserByDepartment', userInfoHandler.searchUserByDepartment)

// 冻结用户 通过id 把status 置为 1 
router.post('/banUser', userInfoHandler.banUser)
// 解冻用户
router.post('/hotUser', userInfoHandler.hotUser)
// 获取冻结用户列表
router.post('/getBanList', userInfoHandler.getBanList)

// 删除用户 id account
router.post('/deleteUser', userInfoHandler.deleteUser)
// 获取对应身份的一个总人数 identity
router.post('/getAdminListLength', userInfoHandler.getAdminListLength)
// 监听换页返回数据
router.post('/returnListData', userInfoHandler.returnListData)



// 暴露路由！
module.exports = router

